Meta Object Facility (MOF) metamodels define data structures for many system and computing application domains such as software modeling, data warehousing, component management, versioning, etc. MOF is a text-based specification that describes a set of objects, their attributes and their associations with other objects. MOF defines the semantics and content structure of metamodels but it does not define a concrete implementation. In order to use these MOF specifications in a business application, they need to be converted into artifacts or structures such as databases and JAVA language classes that can be instantiated, manipulated either manually or programmatically, and that can store data in memory at runtime as well as maintain data in the databases.
Prior to the invention described herein, creating useful computing artifacts such as databases and JAVA classes from a MOF format was a manual, cumbersome, multi-step process: first, the MOF format files were read and parsed using manual or automated processes; second, classes and attributes were converted into relational database data definition language statements through a series of manual and automated sub-steps. These sub-steps created a logical data model from the classes and attributes identifying entities and attributes, transformed the logical data model into a physical database design, and created the Database Description Language (DDL) from that physical database design. The third and final step created the necessary JAVA classes that were used by an application to create in-memory representations of the data in the database.
Known methods that are both manual and cumbersome include using a combination of IBM's RATIONAL ROSE and CRM Tooling products in a three-step process that loads the MOF file using CRM tooling into RATIONAL ROSE, followed by two steps within RATIONAL ROSE to transform the object-oriented model into a database design, and then generate the database data definition language statements. This solution, however, does not generate JAVA classes. Another solution is COMPUTER ASSOCIATE'S ERWIN: ERWIN is a three-step process used only in the creation of the relational database but it does not support object-oriented classes and attributes and does not generate JAVA classes. In both solutions above, moreover, the results must be manually fixed and enumerated lists are not generated.
SUN MICROSYSTEMS MOF compiler is an open-source product that parses MOF files and uses the resulting object model information to generate corresponding JAVABEANS that are then stored in a binary repository. The JAVABEANS define interfaces but do not include any implementing code. The SUN MICROSYSTEMS MOF Compiler, moreover, does not translate the object model into a corresponding relational model. A WINDOWS MANAGEMENT INSTRUMENTATION MOF Compiler is a proprietary product provided with the MICROSOFT WINDOWS operating system starting with WINDOWS NT that compiles MOF files into corresponding classes and stores the classes in the WINDOWS MANAGEMENT INSTRUMENTATION repository. A PEGASUS MOF compiler is also an open-source product that compiles MOF files into corresponding classes and stores the classes in a file-based repository.
Despite the several products and their capabilities, there remains a need for an automated process of transforming a model defined using Meta Object Facility specifications into persistent data storage in a relational database and of generating object-oriented JAVA classes used to create in-memory representations of the data in the data storage. There is a further need for a simplified and automated process to streamline the systems development effort of transforming a model defined using MOF specifications into persistent data storage in a relational database and of generating object-oriented JAVA classes used to create in-memory representations of the data in the data storage. These needs and other that will become apparent are solved by the invention as stated below: